package reflect;

import java.lang.reflect.Field;
public class ReflectDemo8 {
    public static void main(String[] args) throws Exception {
        Teacher t = new Teacher();
        t.name = "王克晶";
        System.out.println(t);

        Class cls = Class.forName("reflect.Teacher");
        Object obj = cls.newInstance();
        //获取名为name的属性
        Field field = cls.getField("name");
        //第一个参为属性所属的对象，要对属性操作得对象打点，即要为哪个对象的name属性赋值
        field.set(obj,"范传奇");//obj.name="范传奇"
        System.out.println(obj);
        //获取属性的值
        System.out.println(field.get(obj));
    }
}

//Field field = cls.getField("name");
//Field 是一个类（全名是 java.lang.reflect.Field）；
//field 是这个类的一个实例变量（即引用）；
//cls.getField("name") 返回的是一个 Field 类型的对象；
//这个对象被赋值给了变量 field。